﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sistema.Dominio;
using Sistema.WF.Componentes.Messages;

namespace Sistema.WF.Componentes.UserControls
{
    public partial class R2TelefoneMultiplos : UserControl
    {
        private IList<TelefoneVO> lista;

        public R2TelefoneMultiplos()
        {
            InitializeComponent();
            lista = new List<TelefoneVO>();
        }

        private void CMD_inserir_Click(object sender, EventArgs e)
        {
            lista.Add(R2Telefone.Telefone);
            R2Telefone.LimparCampos();

            string[] linha = new string[2];

            for (int i = 0; i < lista.Count; i++)
            {
                linha[0] = lista[i].Numero;
                linha[1] = lista[i].TipoTelefone.ToString();
            }

            GRD_telefone.Rows.Add(linha);
        }

        private void CMD_excluir_Click(object sender, EventArgs e)
        {
            BoxMessage erro = new BoxMessage();
            int i;
            if (GRD_telefone.SelectedCells.Count == 0)
            {
                erro.Show("Selecione um telefone a ser excluído", titulo: "Excluir Telefone");
            }
            else
            {
                i = GRD_telefone.CurrentCell.RowIndex;
                lista.RemoveAt(i);
                GRD_telefone.Rows.RemoveAt(i);
            }
        }
       
        [Browsable(false)]  //=> define se aparecera na aba de property
        [EditorBrowsable(EditorBrowsableState.Never)]// => define se pode ser editado na aba de property
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]// => define se a property sera serializada 
        public IList<TelefoneVO> MultiplosTelefones
        {
            get { return RecolheDadosTela(); }
            set { CarregaDadosTela(value); }
        }

        private IList<TelefoneVO> RecolheDadosTela()
        {
            return lista;
        }
        private void CarregaDadosTela(IList<TelefoneVO> value)
        {
            String[] header = new String[2];

            for (int i = 0; i < value.Count; i++)
            {
                header[0] = value[i].Numero.ToString();
                header[1] = value[i].TipoTelefone.ToString();
                GRD_telefone.Rows.Add(header);
            }
                
        }

        private void GRD_telefone_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
